110 PRINT "ENTER ANY VALID APPLESOFT EQUATION": PRINT "OF THE FORM: Y="; CHR$(91);"AN EXPRESSION IN X"; CHR$(93): PRINT
120 INPUT "EQUATION: ";EQ$
130 RP = 160:NCL = 1:LN(1) = 250:LN$(1) = EQ$
140 REM MODIFY LINE 250
150 GOTO 60000
160 REM CONTINUE
170 INPUT "RANGE OF X (FIRST,LAST):";MIN,MAX
180 HGR : HOME : HCOLOR= 3: VTAB 24: PRINT EQ$
190 XG = 279/(MAX -MIN):X0 = -XG *MIN
200 XS = (MAX -MIN)/100
210 MN = 1E37:MX = -1E37
220 FOR I = 0 TO 100
230 W(I) = MIN +XS *I
240 X = W(I)
250 REM MAKE SPACE...........................................................................................................................................................................................................................
260 Y = -Y
270 IF Y >MX THEN MX = Y
280 IF Y <MN THEN MN = Y
290 Z(I) = Y
300 NEXT I
310 ZG = 159/(MX -MN):Z0 = -ZG *MN
320 HPLOT W(0) *XG +X0,Z(0) *ZG +Z0
330 FOR I = 1 TO 100
340 HPLOT TO W(I) *XG +X0,Z(I) *ZG +Z0
350 NEXT I
360 PRINT "PRESS ANY KEY TO CONTINUE ";: GET DUMMY$
370 GOTO 90
380 REM APPEND THE SELF-MODIFIER
60000 REM **********************
60002 REM * SELF-MODIFIER *
60004 REM * BY C. B. WINKLER *
60006 REM * COPYRIGHT (C) 1983 *
60008 REM * BY MICRO-SPARC INC *
60010 REM * LINCOLN, MA. 01773 *
60012 REM **********************
60020 REM CREATE EXEC FILE "MODIFIER"
60030 PRINT D$;"OPEN MODIFIER"
60040 PRINT D$;"DELETE MODIFIER"
60050 PRINT D$;"OPEN MODIFIER"
60060 PRINT D$;"WRITE MODIFIER"
60070 REM WRITE NEW APPLESOFT LINES TO MODIFIER
60080 FOR I = 1 TO NCL
60090 PRINT LN(I);LN$(I)
60100 NEXT I
60110 REM WRITE RETURNING GOTO AND RESTARTING RUN TO MODIFIER
60120 PRINT "60380 GOTO ";RP
60130 PRINT "RUN 60270"
60140 REM DONE BUILDING MODIFIER
60150 PRINT D$;"CLOSE MODIFIER"
60160 REM MOVE VARIABLE POINTERS TO SECURE MEMORY LOCATIONS
60170 FOR I = 0 TO 5: POKE 250 +I, PEEK(105 +I): NEXT I
60180 POKE 238, PEEK(111): POKE 239, PEEK(112)
60190 REM ISSUE EXEC COMMAND
60200 PRINT D$;"EXEC MODIFIER"
60210 REM SAVE DOS OUTPUT VECTOR AND TURN OFF OUTPUT
60240 REM ISSUE END TO START EXECUTION OF MODIFIER
60250 END
60260 REM **********************************************************
60270 REM RESTART PROGRAM
60280 REM RECOVER ALL POINTERS BEFORE REFERENCING ANY VARIABLE NAMES
60290 POKE 105, PEEK(250): POKE 106, PEEK(251)
60300 POKE 107, PEEK(252): POKE 108, PEEK(253)
60310 POKE 109, PEEK(254): POKE 110, PEEK(255)
60320 POKE 111, PEEK(238): POKE 112, PEEK(239)
60330 REM ALL PREVIOUSLY DEFINED VARIABLES NOW AVAILABLE